package ve.com.wayoyo.wuml_case.DibujoDiagramas;

import ve.com.wayoyo.wuml_case.R;
import android.app.Dialog;
import android.content.Context;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.LinearLayout;
import android.widget.ListView;
import android.widget.AdapterView.OnItemClickListener;

public class SeleccionarAtributoMetodo extends Dialog {

	private ArrayAdapter<String> _dataAdapter;
	private String _tipoComponente;
	private LinearLayout _metodo;

	public SeleccionarAtributoMetodo(Context context,
			ArrayAdapter<String> dataAdapter, String tipoComponente) {
		super(context);
		this._dataAdapter = dataAdapter;
		this._tipoComponente = tipoComponente;
	}

	@Override
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.seleccion_metodo_layout);
		setTitle("Seleccione el Atributo a Eliminar");
		setCanceledOnTouchOutside(true);
		_metodo = (LinearLayout) findViewById(R.id.seleccionMetodosLayout);
		_metodo.removeAllViewsInLayout();
		ListView vistaListaAtributo = new ListView(getContext());
		vistaListaAtributo.setAdapter(_dataAdapter);

		vistaListaAtributo.setOnItemClickListener(new OnItemClickListener() {
			public void onItemClick(AdapterView<?> parent, View view,
					int position, long id) {
				SeleccionarAtributoMetodo.this.dismiss();
				if (_tipoComponente.equals("Clase")) {
					((CompClase) VistaDiagrama.getVista().getDiagrama()
							.getSelectedItem()).eliminarAtributo(position);
					((CompClase) VistaDiagrama.getVista().getDiagrama()
							.getSelectedItem()).calculoLongitud();
				} else if (_tipoComponente.equals("Abstract")) {
					((CompAbstract) VistaDiagrama.getVista().getDiagrama()
							.getSelectedItem()).eliminarAtributo(position);
					((CompAbstract) VistaDiagrama.getVista().getDiagrama()
							.getSelectedItem()).calculoLongitud();
				} else if (VistaDiagrama.getVista().getDiagrama()
						.getSelectedItem() instanceof CompEntidad) {
					((CompEntidad) VistaDiagrama.getVista().getDiagrama()
							.getSelectedItem()).eliminarAtributo(position);
					((CompEntidad) VistaDiagrama.getVista().getDiagrama()
							.getSelectedItem()).calculoLongitud();
				} else if (VistaDiagrama.getVista().getDiagrama()
						.getSelectedItem() instanceof CompSubEntidad) {
					((CompSubEntidad) VistaDiagrama.getVista().getDiagrama()
							.getSelectedItem()).eliminarAtributo(position);
					((CompSubEntidad) VistaDiagrama.getVista().getDiagrama()
							.getSelectedItem())._height = ((CompSubEntidad) VistaDiagrama
							.getVista().getDiagrama().getSelectedItem())._height - 30;
				}

				VistaDiagrama.getVista().invalidate();
			}
		});

		_metodo.addView(vistaListaAtributo);
	}
}
